package org.budo.validation.validator.impl;

import java.lang.annotation.Annotation;

import org.budo.validation.exception.BudoNotBlankValidationException;
import org.budo.validation.validator.BudoValidator;
import org.hibernate.validator.constraints.NotBlank;

/**
 * @author lmw
 */
public class NotBlankValidator implements BudoValidator {
    @Override
    public void validate(Annotation annotation, Integer parameterIndex, String parameterName, Object argumentValue) {
        if (null == argumentValue) { // 不允许为空
            throw new BudoNotBlankValidationException(parameterIndex, parameterName, (NotBlank) annotation, argumentValue);
        }

        if (argumentValue instanceof String) {
            if (((String) argumentValue).trim().isEmpty()) { // trim 后
                throw new BudoNotBlankValidationException(parameterIndex, parameterName, (NotBlank) annotation, argumentValue);
            }
        }
    }
}